2023年的2月13日,一款名叫ControlNet的插件横空出世,AI绘画变得更加可控
ControlNet直译过来很简单,就叫做控制网,开发者是一名华裔,毕业于苏州大学,目前在斯坦福做读博士一年级,大佬大佬!
在controlNet之前,基于扩散模型的绘画是极为难控制的,平时自嗨画画其实没有一点问题,随机就随机一点,但是对于一些特定要求的岗位的同学来说,这种抽卡式缺乏稳定性的模型很难真正提高效率。
1 ControlNet的作用结构
根据一些额外信息控制扩散生成走向,业内人士称为微调,通俗点说就是大模型你不是随机吗,那我给你一些指引信息,让你乖乖听话朝着我期望的方向走
这时候有好奇的小伙伴就要问到了,那他和图生图有什么区别吗?我直接输入图片不也可以达到同样的效果吗?其实从某种意义上来说是的,但我举如下一个例子你就明白了
比如我现在要生成一个有着特定姿势的图片,我固然可以通过一张自己期待的姿势的图片输入,模型可能会了解到这个姿势,但与此同时,这种图片除了姿势的其他信息如画面颜色,风格,人物特征也会被网络捕获到,因而就可能会产生意外的化学反应,但是用ControlNet可以提取人体关键点(如下图),这样的话模型只会了解到纯粹的需要生成的姿势而不会混杂其他信息,可控性就会增强了
2 ControlNet的安装和使用
ControlNet本质是一个插件,所以类似于之前插件的安装(看之前的这篇插件安装的文章)
不同于一些插件,ControlNet还需要搭配不同的模型来使用,来实现特定的功能
最推荐的安装方式,是将ControlNet的扩展文件夹放在根目录下的extensions文件夹内,可以省下很多麻烦
然后在扩展选单里重新加载WebUI 界面,就可以在文生图和图生图里面看到了
下载一个ControlNet模型(一般是pth和yaml文件)之后移动到ControlNet的扩展文件夹中
3 基本使用方式
点开ControlNet控制网。输入一张图片,我们在这里期望输出的图片模仿我们输入图片的姿势
我们从网上找一张图片上传
选择预处理器(OpenPose就是提取姿势的),并选择相应的模型
其他参数先维持不变
加入我们期望的场景提示词,如在森林里
1 cute girl, forest, smile,
SFW, (masterpiece:1.2), best quality, masterpiece, highres, original, extremely detailed wallpaper, perfect lighting,(extremely detailed CG:1.2)
生成
更改一下提示词
1 cute girl, city, smile,
SFW, (masterpiece:1.2), best quality, masterpiece, highres, original, extremely detailed wallpaper, perfect lighting,(extremely detailed CG:1.2)
可以看出姿势完全不变
同时它还会附加给我们一张骨骼图
3.1 参数详解
Control Weight
决定这个控制效应在图片中呈现出来的强度,维持默认1不变
Starting Control step
ending Control step
什么时候加入ControlNet影响,默认的0到1表示全程生效,缩短影响,可以赋予图像更多的自由度
ControlMode
提示词影响和ControlNet之间倾向于哪一个,一般维持默认Balanced即可,二者兼顾
核心就是控制强弱
缩放模式
会在导入图片和你生成图片分辨率不匹配的时候起作用
3.2 代表性ControlNet模型应用
3.2.1 Open Pose姿态
上面讲到的只是OpenPose的基本的身体整体骨骼的刻画
选择不同的预处理器可以获得对手部,脸部更精确的刻画
比如我们使用openpose_face,可以看到获得了更精细的脸部特征骨骼图
3.2.2 Depth 深度
适合富有空间感的多层次场景
3.2.3 canny 边缘检测
通过边缘来进行绘画输出,超级强大!!!
比如我们这里用Canny检测器,可以生成几乎一模一样的
可以实现线稿上色